home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 August: Tool Chest / Dev.CD Aug 94.toast / Tool Chest / Interfaces / MPW Interfaces / CIncludes / GestaltEqu.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-09-17  |  14.7 KB  |  375 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        GestaltEqu.h
  3.  
  4.     Copyright:    © 1983-1993 by Apple Computer, Inc.
  5.                 All rights reserved.
  6.  
  7.     Version:    System 7.1 for ETO #11
  8.     Created:    Tuesday, March 30, 1993 18:00
  9.  
  10. */
  11.  
  12. #ifndef __GESTALTEQU__
  13. #define __GESTALTEQU__
  14.  
  15. #ifndef __TYPES__
  16. #include <Types.h>
  17. #endif
  18.  
  19.  
  20. enum {
  21.  
  22.  
  23. /************************
  24.  *    Gestalt error codes
  25.  ************************/
  26.     gestaltUnknownErr = -5550,              /* value returned if Gestalt doesn't know the answer */
  27.     gestaltUndefSelectorErr = -5551,        /* undefined selector was passed to Gestalt */
  28.     gestaltDupSelectorErr = -5552,          /* tried to add an entry that already existed */
  29.     gestaltLocationErr = -5553,             /* gestalt function ptr wasn't in sysheap */
  30.  
  31. /**************************
  32.  *    Environment Selectors
  33.  **************************/
  34.  
  35. #define gestaltVersion 'vers'               /* gestalt version */
  36. #define gestaltAddressingModeAttr 'addr'    /* addressing mode attributes */
  37.  
  38.     gestalt32BitAddressing = 0,             /* using 32-bit addressing mode */
  39.     gestalt32BitSysZone = 1,                /* 32-bit compatible system zone */
  40.     gestalt32BitCapable = 2,                /* Machine is 32-bit capable */
  41.  
  42. #define gestaltAliasMgrAttr 'alis'          /* Alias Mgr Attributes */
  43.  
  44.     gestaltAliasMgrPresent = 0,             /* True if the Alias Mgr is present */
  45.     gestaltAliasMgrSupportsRemoteAppletalk = 1,    /* True if the Alias Mgr knows about Remote Appletalk */
  46.  
  47. #define gestaltAppleTalkVersion 'atlk'      /* appletalk version */
  48. #define gestaltAUXVersion 'a/ux'            /*a/ux version, if present */
  49. #define gestaltConnMgrAttr 'conn'           /* connection mgr attributes    */
  50.  
  51.     gestaltConnMgrPresent = 0,
  52.     gestaltConnMgrCMSearchFix = 1,          /* Fix to CMAddSearch?     */
  53.     gestaltConnMgrErrorString = 2,            /* has CMGetErrorString() */
  54.     gestaltConnMgrMultiAsyncIO = 3,            /* CMNewIOPB, CMDisposeIOPB, CMPBRead, CMPBWrite, CMPBIOKill */
  55.  
  56. #define gestaltComponentMgr 'cpnt'            /* Component Mgr version */
  57.  
  58. #define gestaltTSMgrVersion 'tsmv'            /* Text Services Mgr version, if present */
  59.  
  60. #define gestaltCRMAttr 'crm '               /* comm resource mgr attributes */
  61.  
  62.     gestaltCRMPresent = 0,
  63.     gestaltCRMPersistentFix = 1,             /* fix for persistent tools */
  64.     gestaltCRMToolRsrcCalls = 2,             /* has CRMGetToolResource/ReleaseToolResource */
  65.  
  66. #define gestaltCTBVersion 'ctbv'            /* CommToolbox version */
  67. #define gestaltDBAccessMgrAttr 'dbac'       /* Database Access Mgr attributes */
  68.  
  69.     gestaltDBAccessMgrPresent = 0,          /* True if Database Access Mgr present */
  70.  
  71. #define gestaltDITLExtAttr 'ditl'           /* AppenDITL, etc. calls from CTB */
  72.  
  73.     gestaltDITLExtPresent = 0,              /* True if calls are present */
  74.  
  75. #define gestaltEasyAccessAttr 'easy'        /* Easy Access attributes */
  76.  
  77.     gestaltEasyAccessOff = 0,               /* if Easy Access present, but off (no icon) */
  78.     gestaltEasyAccessOn = 1                 /* if Easy Access "On" */
  79. };
  80. enum {
  81.     gestaltEasyAccessSticky = 2,             /* if Easy Access "Sticky" */
  82.     gestaltEasyAccessLocked = 3,            /* if Easy Access "Locked" */
  83.  
  84. #define gestaltEditionMgrAttr 'edtn'        /* Edition Mgr attributes */
  85.  
  86.     gestaltEditionMgrPresent = 0,           /* True if Edition Mgr present */
  87.  
  88. #define gestaltAppleEventsAttr 'evnt'       /* Apple Events attributes */
  89.  
  90.     gestaltAppleEventsPresent = 0,          /* True if Apple Events present */
  91.  
  92. #define gestaltFindFolderAttr 'fold'        /* Folder Mgr attributes */
  93.  
  94.     gestaltFindFolderPresent = 0,             /* True if Folder Mgr present */
  95.  
  96. #define gestaltFontMgrAttr 'font'           /* Font Mgr attributes */
  97.  
  98.     gestaltOutlineFonts = 0,                /* True if Outline Fonts supported */
  99.  
  100. #define gestaltFPUType 'fpu '               /* fpu type */
  101.  
  102.     gestaltNoFPU = 0,                       /* no FPU */
  103.     gestalt68881 = 1,                       /* 68881 FPU */
  104.     gestalt68882 = 2,                       /* 68882 FPU */
  105.     gestalt68040FPU = 3,                    /* 68040 built-in FPU */
  106.  
  107. #define gestaltFSAttr 'fs  '                /* file system attributes */
  108.  
  109.     gestaltFullExtFSDispatching = 0,        /* has really cool new HFSDispatch dispatcher */
  110.     gestaltHasFSSpecCalls = 1,              /* has FSSpec calls    */
  111.     gestaltHasFileSystemManager = 2,        /* has a file system manager */
  112.  
  113. #define gestaltFXfrMgrAttr 'fxfr'           /* file transfer manager attributes */
  114.  
  115.     gestaltFXfrMgrPresent = 0,
  116.     gestaltFXfrMgrMultiFile = 1,            /* supports FTSend and FTReceive */
  117.     gestaltFXfrMgrErrorString = 2,             /* supports FTGetErrorString */
  118.  
  119. #define gestaltHardwareAttr 'hdwr'          /* hardware attributes */
  120.  
  121.     gestaltHasVIA1 = 0,                        /* VIA1 exists */
  122.     gestaltHasVIA2 = 1,                        /* VIA2 exists */
  123.     gestaltHasASC = 3,                        /* Apple Sound Chip exists */
  124.     gestaltHasSCC = 4                        /* SCC exists */
  125. };
  126. enum {
  127.     gestaltHasSCSI            =    7,            /* SCSI exists */
  128.     gestaltHasSoftPowerOff    =    19,            /* Capable of software power off */
  129.     gestaltHasSCSI961        =    21,            /* 53C96 SCSI controller on internal bus */
  130.     gestaltHasSCSI962        =    22,            /* 53C96 SCSI controller on external bus */
  131.      gestaltHasUniversalROM    =    24,            /* Do we have a Universal ROM? */
  132.  
  133. #define gestaltHelpMgrAttr 'help'            /* Help Mgr Attributes */
  134.  
  135.     gestaltHelpMgrPresent = 0,                /* true if help mgr is present */
  136.     gestaltHelpMgrExtensions = 1,            /* true if help mgr extensions are installed */
  137.  
  138. #define gestaltKeyboardType 'kbd '            /* keyboard type */
  139.  
  140.     gestaltMacKbd = 1,
  141.     gestaltMacAndPad = 2,
  142.     gestaltMacPlusKbd = 3,
  143.     gestaltExtADBKbd = 4,
  144.     gestaltStdADBKbd = 5,
  145.     gestaltPrtblADBKbd = 6,
  146.     gestaltPrtblISOKbd = 7,
  147.     gestaltStdISOADBKbd = 8,
  148.     gestaltExtISOADBKbd = 9,
  149.     gestaltADBKbdII = 10,
  150.     gestaltADBISOKbdII = 11,
  151.      gestaltPwrBookADBKbd = 12,
  152.      gestaltPwrBookISOADBKbd = 13,
  153.  
  154. #define gestaltLowMemorySize 'lmem'         /* size of low memory area */
  155. #define gestaltLogicalRAMSize 'lram'        /* logical ram size */
  156. #define gestaltMiscAttr 'misc'              /* miscellaneous attributes */
  157.  
  158.     gestaltScrollingThrottle = 0,           /* true if scrolling throttle on */
  159.     gestaltSquareMenuBar = 2                /* true if menu bar is square */
  160. };
  161. enum {
  162.  
  163. #define gestaltMMUType 'mmu '               /* mmu type */
  164.  
  165.     gestaltNoMMU = 0,                       /* no MMU */
  166.     gestaltAMU = 1,                         /* address management unit */
  167.     gestalt68851 = 2,                       /* 68851 PMMU */
  168.     gestalt68030MMU = 3,                    /* 68030 built-in MMU */
  169.     gestalt68040MMU = 4,                    /* 68040 built-in MMU */
  170.  
  171. #define gestaltStdNBPAttr 'nlup'            /* standard nbp attributes */
  172.  
  173.     gestaltStdNBPPresent = 0,
  174.  
  175. #define gestaltNotificationMgrAttr 'nmgr'   /* notification manager attributes */
  176.  
  177.     gestaltNotificationPresent = 0,         /* notification manager exists */
  178.  
  179. #define gestaltNuBusConnectors 'sltc'       /* bitmap of NuBus connectors*/
  180. #define gestaltOSAttr 'os  '                /* o/s attributes */
  181.  
  182.     gestaltSysZoneGrowable = 0,             /* system heap is growable */
  183.     gestaltLaunchCanReturn = 1,             /* can return from launch */
  184.     gestaltLaunchFullFileSpec = 2,          /* can launch from full file spec */
  185.     gestaltLaunchControl = 3,                 /* launch control support available */
  186.     gestaltTempMemSupport = 4,              /* temp memory support */
  187.     gestaltRealTempMemory = 5,              /* temp memory handles are real */
  188.     gestaltTempMemTracked = 6,              /* temporary memory handles are tracked */
  189.     gestaltIPCSupport = 7,                  /* IPC support is present */
  190.     gestaltSysDebuggerSupport = 8,          /* system debugger support is present */
  191.  
  192. #define gestaltOSTable 'ostt'               /*  OS trap table base  */
  193. #define gestaltToolboxTable 'tbtt'          /*  OS trap table base  */
  194. #define gestaltExtToolboxTable 'xttt'       /* Extended Toolbox trap table base */
  195. #define gestaltLogicalPageSize 'pgsz'       /* logical page size */
  196. #define gestaltPowerMgrAttr 'powr'          /* power manager attributes */
  197.  
  198.     gestaltPMgrExists = 0,
  199.     gestaltPMgrCPUIdle = 1,
  200.     gestaltPMgrSCC = 2,
  201.     gestaltPMgrSound = 3
  202. };
  203. enum {
  204.  
  205. #define gestaltPPCToolboxAttr 'ppc '        /* PPC toolbox attributes */
  206.  
  207. /*
  208.  * PPC will return the combination of following bit fields.
  209.  * e.g. gestaltPPCSupportsRealTime +gestaltPPCSupportsIncoming + gestaltPPCSupportsOutGoing
  210.  * indicates PPC is cuurently is only supports real time delivery
  211.  * and both incoming and outgoing network sessions are allowed.
  212.  * By default local real time delivery is supported as long as PPCInit has been called.*/
  213.  
  214.  
  215.     gestaltPPCToolboxPresent = 0x0000,      /* PPC Toolbox is present  Requires PPCInit to be called */
  216.     gestaltPPCSupportsRealTime = 0x1000,    /* PPC Supports real-time delivery */
  217.     gestaltPPCSupportsIncoming = 0x0001,    /* PPC will deny incoming network requests */
  218.     gestaltPPCSupportsOutGoing = 0x0002,    /* PPC will deny outgoing network requests */
  219.  
  220. #define gestaltProcessorType 'proc'         /* processor type */
  221.  
  222.     gestalt68000 = 1,
  223.     gestalt68010 = 2,
  224.     gestalt68020 = 3,
  225.     gestalt68030 = 4,
  226.     gestalt68040 = 5,
  227.  
  228. #define gestaltParityAttr 'prty'            /* parity attributes */
  229.  
  230.     gestaltHasParityCapability = 0,         /* has ability to check parity */
  231.     gestaltParityEnabled = 1,                 /* parity checking enabled */
  232.  
  233. #define gestaltQuickdrawVersion 'qd  '      /* quickdraw version */
  234.  
  235.     gestaltOriginalQD = 0x000,              /* original 1-bit QD */
  236.     gestalt8BitQD = 0x100,                  /* 8-bit color QD */
  237.     gestalt32BitQD = 0x200,                 /* 32-bit color QD */
  238.     gestalt32BitQD11 = 0x210,               /* 32-bit color QDv1.1 */
  239.     gestalt32BitQD12 = 0x220,               /* 32-bit color QDv1.2 */
  240.     gestalt32BitQD13 = 0x230,               /* 32-bit color QDv1.3 */
  241.  
  242. #define    gestaltQuickdrawFeatures    'qdrw'    /* quickdraw features */
  243.  
  244.     gestaltHasColor = 0,                    /* color quickdraw present */
  245.     gestaltHasDeepGWorlds = 1,                /* GWorlds can be deeper than 1-bit */
  246.     gestaltHasDirectPixMaps = 2             /* PixMaps can be direct (16 or 32 bit) */
  247. };
  248. enum {
  249.     gestaltHasGrayishTextOr    = 3,            /* supports text mode grayishTextOr */
  250.  
  251. #define gestaltPhysicalRAMSize 'ram '       /* physical RAM size */
  252. #define gestaltPopupAttr 'pop!'             /* popup cdef attributes */
  253.  
  254.     gestaltPopupPresent = 0,
  255.  
  256. #define gestaltResourceMgrAttr 'rsrc'       /* Resource Mgr attributes */
  257.  
  258.     gestaltPartialRsrcs = 0,                /* True if partial resources exist */
  259.  
  260. #define gestaltScriptMgrVersion 'scri'      /* Script Manager version number    <08/05/89 pke> */
  261. #define gestaltScriptCount 'scr#'           /* number of active script systems    <08/05/89 pke> */
  262. #define gestaltSerialAttr 'ser '            /* Serial attributes */
  263.  
  264.     gestaltHasGPIaToDCDa = 0,               /* GPIa connected to DCDa*/
  265.     gestaltHasGPIaToRTxCa = 1,                 /* GPIa connected to RTxCa clock input*/
  266.     gestaltHasGPIbToDCDb = 2,               /* GPIb connected to DCDb */
  267.  
  268. #define gestaltSoundAttr 'snd '             /* sound attributes */
  269.  
  270.     gestaltStereoCapability = 0,            /* sound hardware has stereo capability */
  271.     gestaltStereoMixing = 1,                /* stereo mixing on external speaker */
  272.     gestaltSoundIOMgrPresent = 3,           /* The Sound I/O Manager is present */
  273.     gestaltBuiltInSoundInput = 4,             /* built-in Sound Input hardware is present */
  274.     gestaltHasSoundInputDevice = 5,         /* Sound Input device available */
  275.     gestaltPlayAndRecord = 6,                /* built-in hardware can play and record simultaneously */
  276.                                             /* the following bits are not defined prior to Sound Mgr 3.0 */
  277.     gestaltPlayFromDisk = 7,                /* play from disk available, set by Sound Mgr 3.0 and later */
  278.     gestaltMultiChannels = 8,                /* multiple channel support, set by Sound Mgr 3.0 and later */
  279.  
  280. #define gestaltStandardFileAttr 'stdf'      /* Standard File attributes */
  281.  
  282.     gestaltStandardFile58 = 0,              /* True if selectors 5-8 (StandardPutFile-CustomGetFile) are supported */
  283.  
  284. #define gestaltTextEditVersion 'te  '       /* TextEdit version number            <08/05/89 pke> */
  285.  
  286.     gestaltTE1 = 1,                         /* TextEdit in MacIIci ROM <8Aug89smb> */
  287.     gestaltTE2 = 2,                         /* TextEdit with 6.0.4 Script Systems on MacIIci (Script bug fixes for MacIIci) <8Aug89smb> */
  288.     gestaltTE3 = 3,                         /* TextEdit with 6.0.4 Script Systems all but MacIIci <8Aug89smb> */
  289.     gestaltTE4 = 4,                         /* TextEdit in System 7.0 */
  290.     gestaltTE5 = 5,                         /* TextWidthHook available in TextEdit */
  291.  
  292. #define gestaltTermMgrAttr 'term'           /* terminal mgr attributes */
  293.  
  294.     gestaltTermMgrPresent = 0,
  295.     gestaltTermMgrErrorString = 2,
  296.  
  297. #define gestaltTimeMgrVersion 'tmgr'        /* time mgr version */
  298.  
  299.     gestaltStandardTimeMgr = 1              /* standard time mgr is present */
  300. };
  301. enum {
  302.     gestaltRevisedTimeMgr = 2,              /* revised time mgr is present */
  303.     gestaltExtendedTimeMgr = 3,             /* extended time mgr is present */
  304.  
  305. #define gestaltVMAttr 'vm  '                /* virtual memory attributes */
  306.  
  307.     gestaltVMPresent = 0,                   /* true if virtual memory is present */
  308.  
  309. #define gestaltDictionaryMgrAttr 'dict'        /* Dictionary Manager attributes */
  310.  
  311.     gestaltDictionaryMgrPresent = 0,        /* Dictionary Manager attributes */
  312.  
  313. #define gestaltIconUtilities 'icon'            /* Icon Utilities attributes    */
  314.  
  315.     gestaltIconUtilitiesPresent = 0,        /* true if icon utilities are present */
  316.  
  317.  
  318. /*************************
  319.  *    Info-only selectors
  320.  ************************/
  321.  
  322. #define gestaltMachineType 'mach'           /* machine type */
  323.  
  324.     kMachineNameStrID = -16395,
  325.     gestaltClassic = 1,
  326.     gestaltMacXL = 2,
  327.     gestaltMac512KE = 3,
  328.     gestaltMacPlus = 4,
  329.     gestaltMacSE = 5,
  330.     gestaltMacII = 6,
  331.     gestaltMacIIx = 7,
  332.     gestaltMacIIcx = 8,
  333.     gestaltMacSE030 = 9,
  334.     gestaltPortable = 10,
  335.     gestaltMacIIci = 11,
  336.     gestaltMacIIfx = 13,
  337.     gestaltMacClassic = 17,
  338.     gestaltMacIIsi = 18,
  339.     gestaltMacLC = 19
  340. };
  341. enum {
  342.     gestaltQuadra900 = 20,
  343.     gestaltPowerBook170 = 21,
  344.     gestaltQuadra700 = 22,
  345.     gestaltClassicII = 23,
  346.     gestaltPowerBook100 = 24,
  347.     gestaltPowerBook140 = 25,
  348.     gestaltQuadra950 = 26,
  349.     gestaltMacLCII = 37,
  350.     gestaltPowerBook145 = 54
  351.  
  352. #define gestaltMachineIcon 'micn'           /* machine icon */
  353. #define gestaltROMSize 'rom '               /* rom size */
  354. #define gestaltROMVersion 'romv'            /* rom version */
  355. #define gestaltSystemVersion 'sysv'         /* system version*/
  356. };
  357.  
  358. #ifdef __cplusplus
  359. extern "C" {
  360. #endif
  361. #if SystemSevenOrLater
  362. #pragma parameter __D0 Gestalt(__D0,__A1)
  363. pascal OSErr Gestalt(OSType selector,long *response)
  364.     = {0xA1AD,0x2288};
  365. #else
  366. pascal OSErr Gestalt(OSType selector,long *response);
  367. #endif
  368. pascal OSErr NewGestalt(OSType selector,ProcPtr gestaltFunction);
  369. pascal OSErr ReplaceGestalt(OSType selector,ProcPtr gestaltFunction,ProcPtr *oldGestaltFunction);
  370. #ifdef __cplusplus
  371. }
  372. #endif
  373.  
  374. #endif
  375.